package model;

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;
import javax.swing.JSpinner.ListEditor;

import mappingBD.Client;
import mappingBD.Message;
import mappingBD.SalleDeDiscussion;


public class ChatModel {
	
	private ArrayList<Client> listeClients;  // pour afficher l'avatar de chaque client
	private ArrayList<String> listeSalleDiscussions; // pour afficher le nom des salles de discussion dispos
	private static SalleDeDiscussion salle; // pour afficher le nom, les messages et les participants dans la salle
	
	public ChatModel() {
		
//		BufferedImage temp1 = null;
//		BufferedImage temp2 = null;
//		try {
//			temp1 = resize(ImageIO.read(new File("src/images/defaultAvatar.jpeg")), 120, 120);
//			temp2 = resize(ImageIO.read(new File("src/images/userAvatar.jpeg")), 120, 120);
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		Client client1 = new Client("null","Brulotte", "Roger", "sheIsGone", temp1, true);
//		Client client2 = new Client("null","Casavant", "Denis", "cestCertainRoger", temp2, false);
		listeClients = new ArrayList<Client>();
		listeSalleDiscussions = new ArrayList<String>();
//		listeClients.add(client1);
//		listeClients.add(client2);
//		listeSalleDiscussions.add("Selectionnez une salle");
//		listeSalleDiscussions.add("Baseball");
//		listeSalleDiscussions.add("Balle Molle");
//		listeSalleDiscussions.add("Petites quilles");
//		salle = new SalleDeDiscussion(null, "Baseball", "You must love baseball", client1);
//		Message mes1 = new Message(null, "J'aime le baseball", client1, salle);
//		mes1.setLike(172);
//		mes1.setDislike(1);
//		Message mes2 = new Message(null, "Moe y tou", client2, salle);
//		mes2.setLike(0);
//		mes2.setDislike(17);
//		salle.getListeMessages().add(mes1);
//		salle.getListeMessages().add(mes2);
//		salle.getListAbonnes().add(client1);
//		salle.getListAbonnes().add(client2);
	}
	
	/* 
	 * Cette fonction est la pour tester seulement, a enlever...
	 */
	private BufferedImage resize(BufferedImage image, int width, int height) {
	    BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT);
	    Graphics2D g2d = (Graphics2D) bi.createGraphics();
	    g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
	    g2d.drawImage(image, 0, 0, width, height, null);
	    g2d.dispose();
	    return bi;
	}

	public ArrayList<Client> getListeClients() {
		return listeClients;
	}

	public void setListeClients(ArrayList<Client> listeClients) {
		this.listeClients = listeClients;
	}

	public ArrayList<String> getListeSalleDiscussions() {
		return listeSalleDiscussions;
	}

	public void setListeSalleDiscussions(ArrayList<String> listeSalleDiscussions) {
		this.listeSalleDiscussions = listeSalleDiscussions;
	}

	public static SalleDeDiscussion getSalle() {
		return salle;
	}

	public void setSalle(SalleDeDiscussion salle) {
		this.salle = salle;
	}

}
